home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / ucthesis / ucthesis.doc < prev    next >
Text File  |  1994-12-09  |  44KB  |  1,239 lines

  1. % UCTHESIS DOCUMENT STYLE -- Release info is below.
  2. %    for LaTeX version 2.09
  3.  
  4. \typeout{Document Style `ucthesis' <v2.7, 30 October 1994>.}
  5.  
  6. %%% ====================================================================
  7. %%%  @LaTeX-style-file{
  8. %%%     filename        = "ucthesis.sty",
  9. %%%     version         = "2.7",
  10. %%%     date            = "30 October 1994",
  11. %%%     author          = "Ethan V. Munson",
  12. %%%     address         = ""
  13. %%%     telephone       = "",
  14. %%%     email           = "",
  15. %%%     codetable       = "ISO/ASCII",
  16. %%%     keywords        = "LaTeX, ucthesis",
  17. %%%     supported       = "No, future changes should only be made to
  18. %%%               the LaTeX 2e versions (3.0 and higher)",
  19. %%%     docstring       = "This file is the main file for the ucthesis
  20. %%%                        style, which is intended to meet the requirements
  21. %%%                        for University of California Ph.D. dissertations.
  22. %%%                        It is based on the standard report.sty as 
  23. %%%                        modified by Mittelbach and Schopf in Jan 1992.
  24. %%%                        The primary differences are (1) the use of pseudo-
  25. %%%                        double-spacing, except in certain special
  26. %%%                        environments; and (2) the use of a 6 inch line
  27. %%%                        with 4em paragraph indentation.  It is only
  28. %%%               intended for single-sided printing.  Double-sided
  29. %%%               printing may be possible, but you're on
  30. %%%               your own.
  31. %%%
  32. %%%               Version 2.x fixes a bug in the previous
  33. %%%               version of 20 Jun 1988.  The bug was that 
  34. %%%               "draft" optional mode didn't work because of
  35. %%%               problems in handling optional arguments.
  36. %%%                        This file does not seem to work with earlier 
  37. %%%                        versions of LaTeX (pre-Jan 1992).
  38. %%%
  39. %%%               Version 2.3 includes a single-spaced 
  40. %%%               tabular* environment.
  41. %%%            
  42. %%%               Version 2.4 sets \evensidemargin correctly
  43. %%%               for two-sided style.  It also adds new
  44. %%%               environments (\smalltabular and
  45. %%%               \scriptsizetabular) which produce tables
  46. %%%               with smaller fonts.  The obvious methods
  47. %%%               of producing small-font tables don't work
  48. %%%               in ucthesis style.
  49. %%%
  50. %%%               Version 2.5 adds support for the \maketitle
  51. %%%               macro.
  52. %%%
  53. %%%               Version 2.6 adds support for complete and
  54. %%%               correct front matter.  Some dead code was
  55. %%%               removed, too.
  56. %%%
  57. %%%               Version 2.7 adds front matter support for 
  58. %%%               thesis committees of more than 3 people
  59. %%%               and for a labeled signature line on the
  60. %%%                        abstract page.
  61. %%%
  62. %%%               Some users have had problems with the 
  63. %%%               margins ending up too small on one side.
  64. %%%               This appears to be a DVI-to-PostScript
  65. %%%               driver or printer-adjustment problem.
  66. %%%               If you have such trouble, make small adjustments
  67. %%%               to the \textwidth and \oddsidemargin
  68. %%%               settings in your document preamble.
  69. %%%               
  70. %%%               Another problem some people have had is
  71. %%%               that you can't use \pagestyle{headings}
  72. %%%               and \markboth if you use \part.  The solution
  73. %%%               is to get the headerfooter style, which is
  74. %%%               nice and simple to use.  The fancyheadings
  75. %%%               style is also nice."
  76. %%%  }
  77. %%% ====================================================================
  78. % PREPARING A FOREIGN LANGUAGE VERSION:
  79. %
  80. % This document style is for documents prepared in the English language.
  81. % To prepare a version for another language, various English words must
  82. % be replaced.  Many of the English words that required replacement are
  83. % indicated below, where we give the name of the command in which the
  84. % words appear, and which must be redefined, with the actual words
  85. % underlined.
  86. %
  87. % Other English words that need replacement can be found in the macros
  88. % supporting the title and approval pages.
  89. %
  90. % \tableofcontents:
  91. \def\contentsname{Contents}
  92. %                 ~~~~~~~~
  93. %
  94. % \listoffigures:
  95. \def\listfigurename{List of Figures}
  96. %                   ~~~~~~~~~~~~~~~
  97. %
  98. % \listoftables:
  99. \def\listtablename{List of Tables}
  100. %                  ~~~~~~~~~~~~~~
  101. %
  102. % \thebibliography:
  103. \def\bibname{Bibliography}
  104. %            ~~~~~~~~~~~~
  105. %
  106. % \theindex:
  107. \def\indexname{Index}
  108. %              ~~~~~
  109. %
  110. % figure environment:
  111. \def\figurename{Figure}
  112. %               ~~~~~~
  113. %
  114. % table environment:
  115. \def\tablename{Table}
  116. %              ~~~~~
  117. %
  118. % \chapter:
  119. \def\chaptername{Chapter}
  120. %                ~~~~~~~
  121. % \appendix:
  122. \def\appendixname{Appendix}
  123. %                 ~~~~~~~~
  124. % \part
  125. \def\partname{Part}
  126. %             ~~~~
  127. % abstract environment:
  128. \def\abstractname{Abstract}
  129. %                 ~~~~~~~~
  130. %
  131. % acknowledge environment:
  132. \def\acknowledgename{Acknowledgements}
  133. %                    ~~~~~~~~~~~~~~~~
  134.  
  135. %    ****************************************
  136. %    *               OPTIONS                *
  137. %    ****************************************
  138. %
  139.  
  140. % CHOOSING THE TYPE SIZE:
  141. %
  142. %  The type size option is handled by reading a different file for each
  143. %  size, as follows, to define font size-specific commands:
  144. %       10pt : UCT10, 11pt : UCT11, 12pt : UCT12
  145. %  Implemented by \def'ing \@ptsize to last digit of file name.
  146. %
  147.  
  148. \def\@ptsize{1}               % Default is UCT11.STY
  149. \@namedef{ds@10pt}{\def\@ptsize{0}} % 10pt option reads in UCT10.STY
  150. \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in UCT10.STY
  151. \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in UCT12.STY
  152.  
  153. %  Two-side or one-side printing.
  154. %
  155. % \@twosidefalse               %  Default is one-sided printing.
  156. \def\ds@twoside{\@twosidetrue  %  Defines twoside option.
  157.            \@mparswitchtrue}   %    Marginpars go on outside of page.
  158.  
  159. % This is a tricky solution to a tough bootstrapping problem.  The
  160. % "draft" option requires the definition of the \ssp macro.  However,
  161. % the \ssp macro requires that the uct1?.sty file has been loaded.  This
  162. % loading is done by the \@options command which also invokes the
  163. % \ds@draft macro.  This was a cyclic dependency in the previous
  164. % version.  To break this dependency, I have made \ds@draft set a marker
  165. % which is later tested to determine whether to actually do the draft
  166. % mode actions.
  167. % Ethan Munson (October 16, 1992)
  168.  
  169. \def\@draftmark{0}
  170. \def\ds@draft{\def\@draftmark{1}}
  171.  
  172. % FMi 91/03/30: made twocolum.sty a file and twocolumn an option.
  173.  
  174. % RmS 91/10/15: moved actual reading of twocolumn.sty
  175. %               to the end of this file.
  176. %\def\ds@twocolumn{\@@input twocolum.sty\relax}
  177. \def\ds@twocolumn{\@twocolumntrue}
  178.  
  179. % The \@options command causes the execution of every command \ds@FOO
  180. % which is defined and for which the user typed the FOO option in his
  181. % \documentstyle command.  For every option BAR he typed for which
  182. % \ds@BAR is not defined, the file BAR.sty will be read after the
  183. % present (main) .STY file is executed.
  184.  
  185. \@options
  186.  
  187. \input uct1\@ptsize.sty\relax
  188.  
  189. % For some environments we switch back to single-spacing, also
  190. % provides \dsp in case you need double-spacing where single-spacing
  191. % is otherwise used.
  192. \def\ssp{\def\baselinestretch{1.0}\large\normalsize}
  193. \def\dsp{\def\baselinestretch{1.37}\large\normalsize}
  194.  
  195. % \smallssp is used to produce tabular environments in the small font.
  196. % This is required because single-spacing requires a change in font size.
  197. % \scriptsizessp is a still smaller version of the same thing.
  198.  
  199. \def\smallssp{\def\baselinestretch{1.0}\large\small}
  200. \def\scriptsizessp{\def\baselinestretch{1.0}\large\scriptsize}
  201.  
  202. %  draft option (this is where the draft option is actually implemented)
  203. %
  204. % \overfullrule = 0pt             % Default is don't mark overfull hboxes.
  205. \ifnum \@draftmark = 1
  206. \ssp                  % Single-spaces and
  207. \overfullrule 5pt          % causes overfull hboxes to be marked.
  208. \fi
  209.  
  210. %    ****************************************
  211. %    *             FRONT MATTER             *
  212. %    ****************************************
  213. %
  214.  
  215. % DECLARATIONS
  216. %
  217. % These macros are used to declare arguments needed for the
  218. % construction of the front matter.  
  219.  
  220. % The year the degree will be officially conferred
  221. \def\degreeyear#1{\gdef\@degreeyear{#1}}
  222.  
  223. % The full (unabbreviated) name of the degree
  224. \def\degree#1{\gdef\@degree{#1}}
  225.  
  226. % All previous degrees: one per line in chronological order
  227. \def\prevdegrees#1{\gdef\@prevdegrees{#1}}
  228.  
  229. % The name of your committee's chair
  230. \def\chair#1{\gdef\@chair{#1}}
  231.  
  232. % The names of your other committe members, one per line
  233. \def\othermembers#1{\gdef\@othermembers{#1}}
  234.  
  235. % The number of committee members, which affects both the
  236. % number of lines and the amount of space between lines 
  237. % on the approval page.
  238. \def\@numberofmembers{3}
  239. \def\@approvalspace{.75in}
  240. \def\numberofmembers#1{\gdef\@numberofmembers{#1}
  241. \ifnum \@numberofmembers > 3
  242. \gdef\@approvalspace{.5in}
  243. \fi}
  244.  
  245. % The name of your degree's field (e.g. Psychology, Computer Science)
  246. \def\field#1{\gdef\@field{#1}}
  247.  
  248. % You have to define the campus name twice because I can't figure out
  249. % how to get the TeX \uppercase macro to work for me (EVM, 9/21/94)
  250.  
  251. % The name of your UC Campus CAPITALIZED (e.g. Berkeley, Los Angeles)
  252. \def\campus#1{\gdef\@campus{#1}}
  253.  
  254. % \alwayssingle and \endalwayssingle
  255. %
  256. % These macros define an environment for front matter that is always 
  257. % single column even in a double-column document.
  258.  
  259. \def\alwayssingle{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
  260.      \else \newpage \fi}
  261.  
  262. \def\endalwayssingle{\if@restonecol\twocolumn \else \newpage \fi}
  263.  
  264. % \maketitle outputs the complete titlepage.  It requires all the
  265. % above macros except \campuscap.  It is probably not correct for 
  266. % joint (e.g. UCSD/SDSU) degrees.
  267.  
  268. \def\maketitle{
  269. {\ssp
  270. \begin{alwayssingle}
  271.     \let\footnotesize\small
  272.     \let\footnoterule\relax
  273.     \thispagestyle{empty}
  274.     \setcounter{page}{1}
  275.  
  276.     \null\vfil
  277.   \begin{center}
  278.     \Large
  279.     {\bf {\@title} \par}
  280.     \bigskip \medskip \large
  281.     by \par
  282.     \bigskip \medskip
  283.     {\@author} \par
  284. \vspace{6ex}
  285.     {\@prevdegrees} \par
  286. \vspace{6ex}
  287.     A dissertation submitted in partial satisfaction of the \par
  288. \smallskip
  289.     requirements for the degree of \par
  290. \smallskip
  291.     {\@degree} \par
  292.     \bigskip \medskip
  293.     in \par
  294.     \bigskip \medskip
  295.     {\@field}\par
  296.     \bigskip \medskip
  297.     in the \par
  298.     \bigskip \medskip
  299.     GRADUATE DIVISION \par
  300. \smallskip
  301.     of the \par
  302. \smallskip
  303.     UNIVERSITY of CALIFORNIA at {\expandafter\uppercase\expandafter{\@campus}}
  304.   \end{center}
  305. {
  306. \vspace{6ex}
  307. \large
  308.   Committee in charge:
  309. \begin{quote}
  310. {\@chair}, Chair\newline
  311. {\@othermembers}
  312. \end{quote}
  313.   \begin{center}
  314.     {\@degreeyear}
  315.   \end{center}
  316. }
  317.     \vfil\null
  318. \end{alwayssingle}
  319.  
  320. \setcounter{footnote}{0}
  321. }}
  322.  
  323. % APPROVALPAGE
  324. %
  325. % The \approvalpage macro emits a UC-approved approval page ready for
  326. % your committee's signature.  It is not an automatic part of the 
  327. % output because there's really no point in printing it until you are
  328. % ready to get signatures.  It requires the the \year, \author, and
  329. % \campus macros have been defined.  It uses lots of tricky spacing
  330. % that is probably better handled with tabular environment code, but
  331. % I'm too lazy to fix it. (EVM, 9/19/94)
  332.  
  333. \def\approvalpage{
  334. \begin{alwayssingle}
  335. \thispagestyle{empty}
  336. \null\vfill
  337. \begin{center}
  338. \large The dissertation of {\@author} is approved: \\
  339. \vspace{.25in}
  340. \vspace{\@approvalspace}
  341. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small Chair \hspace{3.15in} Date }}\:$ \\
  342. \vspace{\@approvalspace}
  343. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
  344. \vspace{\@approvalspace}
  345. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
  346. \vspace{\@approvalspace}
  347. \ifnum \@numberofmembers > 3
  348. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
  349. \vspace{\@approvalspace}
  350. \fi
  351. \ifnum \@numberofmembers > 4
  352. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
  353. \vspace{\@approvalspace}
  354. \fi
  355. \ifnum \@numberofmembers > 5
  356. $\:\overline{~~~~ \mbox{\rule{0in}{0.16in}\small ~\hspace{3.5in} Date }}\:$ \\
  357. \vspace{\@approvalspace}
  358. \fi
  359. {\large University of California at {\@campus}} \\
  360. \vspace{-.25in}
  361. \vspace{\@approvalspace}
  362. {\large \@degreeyear}
  363. \end{center}
  364. \vfill\null
  365. \end{alwayssingle}
  366. }
  367.  
  368. % COPYRIGHTPAGE
  369. %
  370. % While it's technically optional, you probably want a copyright page.
  371. % This is a macro, not an environment, because it can be generated
  372. % with the \title, \author, and \year macros.
  373.  
  374. \def\copyrightpage{
  375. \begin{alwayssingle}
  376. \thispagestyle{empty}
  377. \begin{center}
  378. {\Large
  379. {\bf\@title}\par
  380. \vspace{1in}
  381. Copyright \@degreeyear\par
  382. by\par
  383. \@author}
  384. \end{center}
  385. \end{alwayssingle}}
  386.  
  387. % ABSTRACT
  388. %
  389. % The ABSTRACT environment allows for multi-page abstracts which,
  390. % in accordance with UC rules, is numbered separately from the rest
  391. % of the rest of the dissertation in Arabic.  It requires definition
  392. % of the \title, \author, \degree, \field, \campus, and \chair macros.
  393.  
  394.  
  395. \def\abstract{
  396. \begin{alwayssingle}
  397. \pagestyle{plain}
  398. \thispagestyle{plain}
  399. \setcounter{page}{1}
  400. \begin{center}
  401. {\large
  402. {\bf \abstractname}\par
  403. \vspace{.5in}
  404. \@title\par
  405. \vspace{.1in}
  406. by\par
  407. \vspace{.1in}
  408. \@author\par
  409. {\@degree} in \@field\par
  410. \vspace{.1in}
  411. University of California at {\@campus}\par
  412. \vspace{.1in}
  413. {\@chair}, Chair}
  414. \vspace{.1in}
  415. \end{center}}
  416.  
  417. \def\endabstract{\par\vfil\null\end{alwayssingle}
  418. }
  419.  
  420. \def\abstractsignature{
  421. \hspace*{\fill}
  422. \begin{minipage}[t]{3.25in}
  423. \addtolength{\baselineskip}{-.5\baselineskip}
  424. \vspace{1.7cm}
  425. \rule{3.2in}{.5pt}\\
  426. \@chair\\
  427. Dissertation Committee Chair
  428. \end{minipage}}
  429.  
  430. % DEDICATION
  431. %
  432. % The dedication environment just makes sure the dedication gets its
  433. % own page.
  434.  
  435. \newenvironment{dedication}
  436. {\begin{alwayssingle}}
  437. {\end{alwayssingle}}
  438.  
  439. % ACKNOWLEDGEMENTS
  440. %
  441. % The acknowledgements environment puts a large, bold, centered 
  442. % "Acknowledgements" label at the top of the page.
  443.  
  444. \newenvironment{acknowledgements}
  445. {\begin{alwayssingle}
  446. \begin{center}
  447. {\large \bf \acknowledgename}
  448. \end{center}
  449. }
  450. {\end{alwayssingle}}
  451.  
  452. % FRONTMATTER environment
  453. %
  454. % The FRONTMATTER environment makes sure that page numbering is set
  455. % correctly (roman, lower-case, starting at 3) for the front matter
  456. % that follows the abstract.  It also resets page-numbering for
  457. % the remainder of the dissertation (arabic, starting at 1).
  458.  
  459. \newenvironment{frontmatter}
  460. {\setcounter{page}{3}\renewcommand{\thepage}{\roman{page}}}
  461. {\newpage\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}}
  462.  
  463.  
  464. %    ****************************************
  465. %    *                LISTS                 *
  466. %    ****************************************
  467. %
  468.  
  469. % ENUMERATE
  470. %  Enumeration is done with four counters: enumi, enumii, enumiii
  471. %  and enumiv, where enumN controls the numbering of the Nth level
  472. %  enumeration.  The label is generated by the commands \labelenumi
  473. %  ... \labelenumiv.  The expansion of \p@enumN\theenumN defines the
  474. %  output of a \ref command.
  475. %
  476. % 16 Mar 88 -- changed defs of \labelenum... to use \theenum...
  477.  
  478. \def\labelenumi{\theenumi.}
  479. \def\theenumi{\arabic{enumi}}
  480.  
  481. \def\labelenumii{(\theenumii)}
  482. \def\theenumii{\alph{enumii}}
  483. \def\p@enumii{\theenumi}
  484.  
  485. \def\labelenumiii{\theenumiii.}
  486. \def\theenumiii{\roman{enumiii}}
  487. \def\p@enumiii{\theenumi(\theenumii)}
  488.  
  489. \def\labelenumiv{\theenumiv.}
  490. \def\theenumiv{\Alph{enumiv}}
  491. \def\p@enumiv{\p@enumiii\theenumiii}
  492.  
  493. % ITEMIZE
  494. % Itemization is controlled by four commands: \labelitemi, \labelitemii,
  495. % \labelitemiii, and \labelitemiv, which define the labels of the
  496. % various itemization levels.
  497.  
  498. \def\labelitemi{$\m@th\bullet$}
  499. \def\labelitemii{\bf --}
  500. \def\labelitemiii{$\m@th\ast$}
  501. \def\labelitemiv{$\m@th\cdot$}
  502.  
  503.  
  504. % VERSE
  505. %   The verse environment is defined by making clever use of the
  506. %   list environment's parameters.  The user types \\ to end a line.
  507. %   This is implemented by \let'in \\ equal \@centercr.
  508. %
  509. \def\verse{\par\let\\=\@centercr
  510.   \list{}{\ssp\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
  511.           \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
  512. \let\endverse\endlist
  513.  
  514. % QUOTATION
  515. %   Fills lines
  516. %   Indents paragraph
  517. %
  518. \def\quotation{\par\list{}{\ssp\listparindent 1.5em
  519.     \itemindent\listparindent
  520.     \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]}
  521. \let\endquotation=\endlist
  522.  
  523. % QUOTE -- same as quotation except no paragraph indentation,
  524. %
  525. \def\quote{\par\list{}{\ssp\rightmargin\leftmargin}\item[]}
  526. \let\endquote=\endlist
  527.  
  528. % DESCRIPTION
  529. %
  530. %  To change the formatting of the label, you must redefine
  531. %  \descriptionlabel.
  532.  
  533. \def\descriptionlabel#1{\hspace\labelsep \bf #1}
  534. \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
  535.        \let\makelabel\descriptionlabel}}
  536.  
  537. \let\enddescription\endlist
  538.  
  539. \newdimen\descriptionmargin
  540. \descriptionmargin=3em
  541.  
  542.  
  543. %    ****************************************
  544. %    *         OTHER ENVIRONMENTS           *
  545. %    ****************************************
  546. %
  547. %
  548. % VERBATIM
  549. %
  550. % standard verbatim mode driver macro is modified to use
  551. % single-spacing.  There appears to be a small problem with extra
  552. % vertical space (1 or 2 points worth) after this environment.
  553. % Probably, this results from returning to double-spacing before
  554. % issuing a \parskip, but I'm not enough of TeX hacker to figure out
  555. % the source of the problem. (EVM, 9/25/94)
  556.  
  557. \def\@verbatim{\trivlist\ssp \item[]\if@minipage\else\vskip\parskip\fi
  558. \leftskip\@totalleftmargin\rightskip\z@
  559. \parindent\z@\parfillskip\@flushglue\parskip\z@
  560. %%RmS 91/08/26 Added \@@par to clear possible \parshape definition
  561. %%from a surrounding list (the verbatim guru says)
  562. \@@par
  563. \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
  564. \penalty\interlinepenalty}%
  565. \obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials}
  566.  
  567. % ARRAY AND TABULAR
  568. %
  569.  
  570. \arraycolsep 5pt     % Half the space between columns in an array
  571.                      % environment.
  572. \tabcolsep 6pt       % Half the space between columns in a tabular
  573.                      % environment.
  574. \arrayrulewidth .4pt % Width of rules in array and tabular environment.
  575. \doublerulesep 2pt   % Space between adjacent rules in array or tabular
  576.                      % environment.
  577.  
  578. % We have to redefine array here in order to make it single-spaced.
  579. % (Not sure if this is really necessary.)
  580. \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
  581.  \let\@classiv\@arrayclassiv \let\\\@arraycr\let\@halignto\@empty\@tabarray}
  582.  
  583. % TABBING
  584. %
  585. \tabbingsep \labelsep   % Space used by the \' command.
  586.                         %  (See LaTeX manual.)
  587.  
  588. % We have to redefine tabular here in order to make it single-spaced.
  589. \def\tabular{\par\ssp\let\@halignto\@empty\@tabular}
  590. \expandafter \def\csname tabular*\endcsname #1{\par\ssp\def\@halignto{to#1}\@tabular}
  591.  
  592. % \smalltabular and \smalltabular* are alternative tabular styles
  593. % in the \small font.  They are required because single-spacing implies a 
  594. % change of font to a particular size.
  595. % EVM, 7/20/93 
  596. \def\smalltabular{\par\smallssp\let\@halignto\@empty\@tabular}
  597. \def\endsmalltabular{\endtabular}
  598. \expandafter \def\csname smalltabular*\endcsname #1{\par\smallssp\def\@halignto{to#1}\@tabular}
  599. \expandafter \let \csname endsmalltabular*\endcsname = \endtabular
  600.  
  601. % \scriptsizetabular and \scriptsizetabular* are analogs of \smalltabular
  602. \def\scriptsizetabular{\par\scriptsizessp\let\@halignto\@empty\@tabular}
  603. \def\endscriptsizetabular{\endtabular}
  604. \expandafter \def\csname scriptsizetabular*\endcsname #1{\par\scriptsizessp\def\@halignto{to#1}\@tabular}
  605. \expandafter \let \csname endscriptsizetabular*\endcsname = \endtabular
  606.  
  607. % MINIPAGE
  608. %  \@minipagerestore is called upon entry to a minipage environment to
  609. %  set up things that are to be handled differently inside a minipage
  610. %  environment. In the current styles, it does nothing.
  611. %
  612. % \skip\@mpfootins : plays same role for footnotes in a minipage as
  613. %                    \skip\footins does for ordinary footnotes
  614.  
  615. \skip\@mpfootins = \skip\footins
  616.  
  617. % FRAMEBOX
  618. %
  619. \fboxsep = 3pt    % Space left between box and text by \fbox and
  620.                   % \framebox.
  621. \fboxrule = .4pt  % Width of rules in box made by \fbox and \framebox.
  622.  
  623.  
  624. %    ****************************************
  625. %    *        CHAPTERS AND SECTIONS         *
  626. %    ****************************************
  627. %
  628. % DEFINE COUNTERS:
  629. %
  630. % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is
  631. %                               reset to zero when counter OLDCTR is
  632. %                               stepped.
  633. %                               Counter OLDCTR must already be defined.
  634.  
  635. % Must redefine @startsection so that we always get indentation.
  636. \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
  637.    \par \@tempskipa #4\relax
  638.    \@afterindenttrue
  639.    \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \relax\fi
  640.    \if@nobreak \everypar{}\else
  641.      \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar
  642.      {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
  643.  
  644. \newcounter {part}
  645. \newcounter {chapter}
  646. \newcounter {section}[chapter]
  647. \newcounter {subsection}[section]
  648. \newcounter {subsubsection}[subsection]
  649. \newcounter {paragraph}[subsubsection]
  650. \newcounter {subparagraph}[paragraph]
  651.  
  652. % For any counter CTR, \theCTR is a macro that defines the printed
  653. % version of counter CTR.  It is defined in terms of the following
  654. % macros:
  655. %
  656. %  \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
  657. %  \roman{COUNTER}  : Its value printed as a lower-case roman numberal.
  658. %  \Roman{COUNTER}  : Its value printed as an upper-case roman numberal.
  659. %  \alph{COUNTER}   : Value of COUNTER printed as a lower-case letter:
  660. %                         1 = a, 2 = b, etc.
  661. %  \Alph{COUNTER}   : Value of COUNTER printed as an upper-case letter:
  662. %                           1 = A, 2 = B, etc.
  663. %
  664.  
  665. \def\thepart          {\Roman{part}}
  666. \def\thechapter       {\arabic{chapter}}
  667. \def\thesection       {\thechapter.\arabic{section}}
  668. \def\thesubsection    {\thesection.\arabic{subsection}}
  669. \def\thesubsubsection {\thesubsection .\arabic{subsubsection}}
  670. \def\theparagraph     {\thesubsubsection.\arabic{paragraph}}
  671. \def\thesubparagraph  {\theparagraph.\arabic{subparagraph}}
  672.  
  673. % \@chapapp is initially defined to be '\chaptername'.  The \appendix
  674. % command redefines it to be '\appendixname'.
  675. %
  676. \def\@chapapp{\chaptername}
  677.  
  678. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  679. %                        PART                          %
  680. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  681.  
  682. \def\part{\cleardoublepage   % Starts new page.
  683.    \thispagestyle{plain}%    % Page style of part page is 'plain'
  684.   \if@twocolumn              % IF two-column style
  685.      \onecolumn              %  THEN \onecolumn
  686.      \@tempswatrue           %       @tempswa := true
  687.     \else \@tempswafalse     %  ELSE @tempswa := false
  688.   \fi                        % FI
  689.   \hbox{}\vfil               % Add fil glue to center title
  690. %%  \bgroup  \centering      % BEGIN centering %% Removed 19 Jan 88
  691.   \secdef\@part\@spart}
  692.  
  693. \def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax  % IF secnumdepth > -2
  694.         \refstepcounter{part}%                    %   THEN step
  695.                                                   %         part counter
  696.         \addcontentsline{toc}{part}{\thepart      %        add toc line
  697.         \hspace{1em}#1}\else                      %   ELSE add
  698.                                                   %         unnumb. line
  699.         \addcontentsline{toc}{part}{#1}\fi        % FI
  700.    \markboth{}{}%
  701.    {\centering                       % %% added 19 Jan 88
  702.     \interlinepenalty \@M            %% RmS added 11 Nov 91
  703.     \ifnum \c@secnumdepth >-2\relax  % IF secnumdepth > -2
  704.       \huge\bf \partname~\thepart    %   THEN Print '\partname' and
  705.     \par                             %         number in \huge bold.
  706.     \vskip 20\p@\fi                  %        Add space before title.
  707.     \Huge \bf                        % FI
  708.     #2\par}\@endpart}                % Print Title in \Huge bold.
  709.                                      % Bug Fix 13 Nov 89: #1 -> #2
  710.  
  711.  
  712. % \@endpart finishes the part page
  713. %
  714. \def\@endpart{\vfil\newpage   % End page with 1fil glue.
  715.    \if@twoside                % IF twoside printing
  716.        \hbox{}%               %   THEN Produce totally blank page
  717.        \thispagestyle{empty}%
  718.        \newpage
  719.    \fi                        % FI
  720.    \if@tempswa                % IF @tempswa = true
  721.      \twocolumn               %   THEN \twocolumn
  722.    \fi}                       % FI
  723.  
  724. \def\@spart#1{{\centering      % %% added 19 Jan 88
  725.    \interlinepenalty \@M       %% RmS added 11 Nov 91
  726.    \Huge \bf                   % Print title in \Huge boldface
  727.    #1\par}\@endpart}
  728.  
  729.  
  730.  
  731.  
  732.  
  733. %    ****************************************
  734. %    *         TABLE OF CONTENTS, ETC.      *
  735. %    ****************************************
  736. %
  737. % A \subsection command writes a
  738. %       \contentsline{subsection}{TITLE}{PAGE}
  739. % command on the .toc file, where TITLE contains the contents of the
  740. % entry and PAGE is the page number.  If subsections are being numbered,
  741. % then TITLE will be of the form
  742. %       \numberline{NUM}{HEADING}
  743. % where NUM is the number produced by \thesubsection.  Other sectioning
  744. % commands work similarly.
  745. %
  746. % A \caption command in a 'figure' environment writes
  747. %    \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
  748. % on the .lof file, where NUM is the number produced by \thefigure and
  749. % CAPTION is the figure caption.  It works similarly for a 'table'
  750. % environment.
  751. %
  752. % The command \contentsline{NAME} expands to \l@NAME.  So, to specify
  753. % the table of contents, we must define \l@chapter, \l@section,
  754. % \l@subsection, ... ; to specify the list of figures, we must define
  755. % \l@figure; and so on.  Most of these can be defined with the
  756. % \@dottedtocline command, which works as follows.
  757. %
  758. % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
  759. %    LEVEL    : An entry is produced only if LEVEL < or = value of
  760. %               'tocdepth' counter.  Note, \chapter is level 0, \section
  761. %               is level 1, etc.
  762. %    INDENT   : The indentation from the outer left margin of the start
  763. %               of the contents line.
  764. %    NUMWIDTH : The width of a box in which the section number is to go,
  765. %               if TITLE includes a \numberline command.
  766. %
  767. % This command uses the following three parameters, which are set
  768. % with a \def (so em's can be used to make them depend upon the font).
  769. %   \@pnumwidth : The width of a box in which the page number is put.
  770. %   \@tocrmarg  : The right margin for multiple line entries.  One
  771. %                 wants \@tocrmarg > or = \@pnumwidth
  772. %   \@dotsep    : Separation between dots, in mu units.  Should be
  773. %                 \def'd to a number like 2 or 1.7
  774.  
  775. \def\@pnumwidth{1.55em}
  776. \def\@tocrmarg {2.55em}
  777. \def\@dotsep{4.5}
  778. \setcounter{tocdepth}{2}
  779.  
  780.  
  781. % TABLEOFCONTENTS
  782. %  In ucthesis style, \tableofcontents, \listoffigures, etc. are always
  783. %  set in single-column style.  @restonecol
  784.  
  785. \def\tableofcontents{\@restonecolfalse
  786.   \if@twocolumn\@restonecoltrue\onecolumn\fi
  787.   \chapter*{\contentsname
  788.         \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
  789.   {\ssp\@starttoc{toc}}\if@restonecol\twocolumn\fi}
  790.  
  791. \def\l@part#1#2{\addpenalty{-\@highpenalty}%
  792.    \addvspace{2.25em plus\p@}% space above part line
  793.    \begingroup
  794.    \@tempdima 3em         % width of box holding part number, used by
  795.      \parindent \z@ \rightskip \@pnumwidth             %% \numberline
  796.      \parfillskip -\@pnumwidth
  797.      {\large \bf          % set line in \large boldface
  798.      \leavevmode          % TeX command to enter horizontal mode.
  799.      #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
  800.      \nobreak             % Never break after part entry
  801.     \global\@nobreaktrue                        %% Added 24 May 89 as
  802.     \everypar{\global\@nobreakfalse\everypar{}}%% suggested by
  803.                                                %% Jerry Leichter
  804.    \endgroup}
  805.  
  806. %% First line of l@chapter changed 24 May 89, as suggested
  807. %% by Jerry Leichter.
  808. %%
  809. \def\l@chapter#1#2{\addpenalty{-\@highpenalty}%
  810.    \vskip 1.0em plus\p@   % space above chapter line
  811.    \@tempdima 1.5em       % width of box holding chapter number
  812.    \begingroup
  813.      \parindent \z@ \rightskip \@pnumwidth
  814.      \parfillskip -\@pnumwidth
  815.      \bf                  % Boldface.
  816.      \leavevmode          % TeX command to enter horizontal mode.
  817.       \advance\leftskip\@tempdima  %% added 5 Feb 88 to conform to
  818.       \hskip -\leftskip            %% 25 Jan 88 change to \numberline
  819.      #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
  820.      \penalty\@highpenalty %% added 24 May 89, suggested by J. Leichter
  821.    \endgroup}
  822.  
  823. \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
  824. \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
  825. \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
  826. \def\l@paragraph{\@dottedtocline{4}{10em}{5em}}
  827. \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
  828.  
  829. % LIST OF FIGURES
  830. %
  831. % Single-space list of figures, add it to the table of contents.
  832. \def\listoffigures{\@restonecolfalse
  833.   \if@twocolumn\@restonecoltrue\onecolumn\fi
  834.   \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}
  835.    \addcontentsline{toc}{chapter}{\listfigurename}
  836.    {\ssp\@starttoc{lof}}\if@restonecol
  837.     \twocolumn\fi}
  838.  
  839. \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
  840.  
  841. % LIST OF TABLES
  842. %
  843. \def\listoftables{\@restonecolfalse
  844.   \if@twocolumn\@restonecoltrue\onecolumn\fi
  845.   \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}%
  846.    {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol
  847.   \twocolumn\fi}
  848. \def\listoftables{\@restonecolfalse
  849.   \if@twocolumn\@restonecoltrue\onecolumn\fi
  850.   \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}{\uppercase{\listtablename}}}
  851.    \addcontentsline{toc}{chapter}{\listtablename}
  852.    {\ssp\@starttoc{lot}}\if@restonecol
  853.   \twocolumn\fi}
  854.  
  855.  
  856. \let\l@table\l@figure
  857.  
  858.  
  859.  
  860. %    ****************************************
  861. %    *             BIBLIOGRAPHY             *
  862. %    ****************************************
  863. %
  864. % The thebibliography environment executes the following commands:
  865. %
  866. %  \def\newblock{\hskip .11em plus .33em minus .07em} --
  867. %      Defines the `closed' format, where the blocks (major units of
  868. %      information) of an entry run together.
  869. %
  870. %  \sloppy  -- Used because it's rather hard to do line breaks in
  871. %      bibliographies,
  872. %
  873. %  \sfcode`\.=1000\relax --
  874. %      Causes a `.' (period) not toproduce an end-of-sentence space.
  875.  
  876. %% RmS 91/10/27 [ .. ] replaced by \@biblabel{ .. }
  877. %% RmS 91/11/13: Changed counter enumi to enumiv,
  878. %%               as it says in the comment in latex.tex
  879. %% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv}
  880. %%               to get correct references
  881. \def\thebibliography#1{\chapter*{\bibname\@mkboth
  882.   {\uppercase{\bibname}}{\uppercase{\bibname}}}
  883.   \addcontentsline{toc}{chapter}{\bibname}
  884.   \list{\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}%
  885.     \leftmargin\labelwidth
  886.     \advance\leftmargin\labelsep
  887.     \usecounter{enumiv}%
  888.     \let\p@enumiv\@empty
  889.     \def\theenumiv{\arabic{enumiv}}}%
  890.     \def\newblock{\hskip .11em plus.33em minus.07em}%
  891.     \sloppy\clubpenalty4000\widowpenalty4000
  892.     \sfcode`\.=\@m}
  893.  
  894.  
  895. %% 91/08/26 FMI & RmS: introduced warning instead of error
  896.  
  897. \def\endthebibliography{%
  898.   \def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
  899.   \endlist}
  900.  
  901.  
  902. % \def\@biblabel#1{[#1]\hfill}  % Produces the label for a \bibitem[...]
  903.                                 % command.
  904. % \def\@cite#1{[#1]}            % Produces the output of the \cite
  905.                                 % command.
  906.  
  907.  
  908.  
  909. %    ****************************************
  910. %    *              THE INDEX               *
  911. %    ****************************************
  912. %
  913. % THE THEINDEX ENVIRONMENT
  914. % Produces double column format, with each paragraph a separate entry.
  915. % The user commands \item, \subitem and \subsubitem are used to
  916. % produce the entries, and \indexspace adds an extra vertical space
  917. % that's the right size to put above the first entry with a new letter
  918. % of the alphabet.
  919.  
  920. \newif\if@restonecol
  921.  
  922. \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
  923. \columnseprule \z@
  924. \columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]%
  925.     \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}%
  926.     \thispagestyle{plain}\parindent\z@
  927.     \parskip\z@ plus .3\p@\relax\let\item\@idxitem}
  928.  
  929. \def\@idxitem{\par\hangindent 40\p@}
  930.  
  931. \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
  932.  
  933. \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
  934.  
  935. \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
  936.  
  937. \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
  938.  
  939.  
  940. %    ****************************************
  941. %    *             FOOTNOTES                *
  942. %    ****************************************
  943. %
  944. % \footnoterule is a macro to draw the rule separating the footnotes
  945. % from the text.  It should take zero vertical space, so it needs a
  946. % negative skip to compensate for any positive space taken by the rule.
  947. % (See PLAIN.TEX.)
  948.  
  949. \def\footnoterule{\kern-3\p@
  950.   \hrule width .4\columnwidth
  951.   \kern 2.6\p@}                 % The \hrule has default height of .4pt.
  952.  
  953. % \newcounter{footnote}
  954. \@addtoreset{footnote}{chapter}  % Numbers footnotes within chapters
  955.  
  956. %   \@makefntext{NOTE} :
  957. %        Must produce the actual footnote, using \@thefnmark as the mark
  958. %        of the footnote and NOTE as the text.  It is called when
  959. %        effectively inside a \parbox of width \columnwidth (i.e., with
  960. %        \hsize = \columnwidth).
  961. %
  962. %        The following macro indents all lines of the footnote by 10pt,
  963. %        and indents the first line of a new paragraph by 1em.  To
  964. %        change these dimensions, just substitute the desired value for
  965. %        '10pt' [in both places] or '1em'.  The mark is flushright
  966. %        against the footnote.
  967. %          \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
  968. %             \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
  969. %             \parindent 1em\noindent
  970. %             \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1}
  971. %
  972. %        A simpler macro is used, in which the footnote text is
  973. %        set like an ordinary text paragraph, with no indentation except
  974. %        on the first line of a paragraph, and the first line of the
  975. %        footnote.  Thus, all the macro must do is set \parindent
  976. %        to the appropriate value for succeeding paragraphs and put the
  977. %        proper indentation before mark.
  978.  
  979. \long\def\@makefntext#1{\parindent 1em\noindent
  980.             \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1}
  981.  
  982. % \@makefnmark : A macro to generate the footnote marker that goes
  983. %    in the text.  Default used.
  984. %
  985.  
  986.  
  987. % Single-space footnotes.
  988. \long\def\@footnotetext#1{\insert\footins{\ssp\reset@font\footnotesize
  989.     \interlinepenalty\interfootnotelinepenalty
  990.     \splittopskip\footnotesep
  991.     \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
  992.     \hsize\columnwidth \@parboxrestore
  993.    \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
  994.     {\rule{\z@}{\footnotesep}\ignorespaces
  995.       #1\strut}}}
  996.  
  997. %    ****************************************
  998. %    *         FIGURES AND TABLES           *
  999. %    ****************************************
  1000. %
  1001. % Float placement parameters.  See LaTeX manual for their definition.
  1002. %
  1003. \setcounter{topnumber}{2}
  1004. \def\topfraction{.7}
  1005. \setcounter{bottomnumber}{1}
  1006. \def\bottomfraction{.3}
  1007. \setcounter{totalnumber}{3}
  1008. \def\textfraction{.2}
  1009. \def\floatpagefraction{.5}
  1010. \setcounter{dbltopnumber}{2}
  1011. \def\dbltopfraction{.7}
  1012. \def\dblfloatpagefraction{.5}
  1013.  
  1014. % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.
  1015. %      NUMBER : Figure or table number--e.g., 'Figure 3.2'
  1016. %      TEXT   : The caption text.
  1017. %  Macro should be called inside a \parbox of right width, with
  1018. %  \normalsize.
  1019. % changed 25 Jun 86 to fix according to Howard Trickey:
  1020. % instead of \unhbox\@tempboxa\par we do #1: #2\par
  1021.  
  1022. % 15 Nov 93: further changes to support captions BEFORE the figure
  1023. % or table.  Changes suggested by Donald Arseneau, installed by Ethan
  1024. % Munson.  Detailed reasons are:
  1025. %    The \unhbox allows \vadjust material (\vspace) to get out;
  1026. %    the \vbox to\topskip{} is for captions at the top of top-floats;
  1027. %    the \ifdim is for captions above the figure or table;
  1028. %    the strut is for tables below the caption.
  1029.  
  1030. \long\def\@makecaption#1#2{% Add space only if something is ...
  1031.    \par\ifdim\prevdepth>-\p@ \vskip 10\p@\relax \fi % above the caption
  1032.    \setbox\@tempboxa\hbox{\vbox to\topskip{}#1: #2\unskip\strut}% 
  1033.    \ifdim \wd\@tempboxa >\hsize      % IF longer than one line:
  1034.        {\ssp#1: #2\unskip\strut\par} %   THEN set as ordinary paragraph.
  1035.      \else                           %   ELSE  center.
  1036.        \hbox to\hsize{\hfil\unhbox\@tempboxa\hfil}%
  1037.    \fi}
  1038.  
  1039. % To define a float of type TYPE (e.g., TYPE = figure), the document
  1040. % style must define the following.
  1041. %
  1042. %  \fps@TYPE   : The default placement specifier for floats of type
  1043. %                TYPE.
  1044. %
  1045. % \ftype@TYPE : The type number for floats of type TYPE.  Each TYPE
  1046. %                has associated a unique positive TYPE NUMBER, which
  1047. %                is a power of two.  E.g., figures might have type
  1048. %                number 1, tables type number 2, programs type number
  1049. %                4, etc.
  1050. %
  1051. % \ext@TYPE : The file extension indicating the file on which the
  1052. %                contents list for float type TYPE is stored.  For
  1053. %                example, \ext@figure = 'lof'.
  1054. %
  1055. %  \fnum@TYPE  : A macro to generate the figure number for a caption.
  1056. %                For example, \fnum@TYPE == Figure \thefigure.
  1057. %
  1058. %  The actual float-making environment commands--e.g., the commands
  1059. %  \figure and \endfigure--are defined in terms of the macros \@float
  1060. %  and \end@float, which are described below.
  1061. %
  1062. % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a
  1063. %     single-column float of type TYPE with PLACEMENT as the placement
  1064. %     specifier.  The default value of PLACEMENT is defined by
  1065. %     \fps@TYPE.  The environment is ended by \end@float.  E.g.,
  1066. %     \figure == \@float{figure}, \endfigure == \end@float.
  1067.  
  1068.  
  1069. % FIGURE
  1070.  
  1071. \newcounter{figure}[chapter]
  1072. \def\thefigure{\thechapter.\@arabic\c@figure}
  1073.  
  1074. \def\fps@figure{tbp}
  1075. \def\ftype@figure{1}
  1076. \def\ext@figure{lof}
  1077. \def\fnum@figure{\figurename~\thefigure}
  1078. \def\figure{\@float{figure}}
  1079. \let\endfigure\end@float
  1080. \@namedef{figure*}{\@dblfloat{figure}}
  1081. \@namedef{endfigure*}{\end@dblfloat}
  1082.  
  1083. % TABLE
  1084. %
  1085. \newcounter{table}[chapter]
  1086. \def\thetable{\thechapter.\@arabic\c@table}
  1087.  
  1088. \def\fps@table{tbp}
  1089. \def\ftype@table{2}
  1090. \def\ext@table{lot}
  1091. \def\fnum@table{\tablename~\thetable}
  1092. \def\table{\@float{table}}
  1093. \let\endtable\end@float
  1094. \@namedef{table*}{\@dblfloat{table}}
  1095. \@namedef{endtable*}{\end@dblfloat}
  1096.  
  1097.  
  1098. %    ****************************************
  1099. %    *            PAGE STYLES               *
  1100. %    ****************************************
  1101. %
  1102. % The page style 'foo' is defined by defining the command \ps@foo.  This
  1103. % command should make only local definitions.  There should be no stray
  1104. % spaces in the definition, since they could lead to mysterious extra
  1105. % spaces in the output.
  1106. %
  1107. % The \ps@... command defines the macros \@oddhead, \@oddfoot,
  1108. % \@evenhead, and \@evenfoot to define the running heads and
  1109. % feet---e.g., \@oddhead is the macro to produce the contents of the
  1110. % heading box for odd-numbered pages.  It is called inside an \hbox of
  1111. % width \textwidth.
  1112. %
  1113. % To make headings determined by the sectioning commands, the page style
  1114. % defines the commands \chaptermark, \sectionmark, ... , where
  1115. % \chaptermark{TEXT} is called by \chapter to set a mark, and so on.
  1116. % The \...mark commands and the \...head macros are defined with the
  1117. % help of the following macros.  (All the \...mark commands should be
  1118. % initialized to no-ops.)
  1119. %
  1120. % MARKING CONVENTIONS:
  1121. % LaTeX extends TeX's \mark facility by producing two kinds of marks
  1122. % a 'left' and a 'right' mark, using the following commands:
  1123. %     \markboth{LEFT}{RIGHT} : Adds both marks.
  1124. %     \markright{RIGHT}      : Adds a 'right' mark.
  1125. %     \leftmark  : Used in the \@oddhead, \@oddfoot, \@evenhead or
  1126. %                  \@evenfoot macro, gets the current 'left' mark.
  1127. %                  Works like TeX's \botmark command.
  1128. %     \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or
  1129. %                  \@evenfoot macro, gets the current 'right' mark.
  1130. %                  Works like TeX's \firstmark command.
  1131. % The marking commands work reasonably well for right marks 'numbered
  1132. % within' left marks--e.g., the left mark is changed by a \chapter
  1133. % command and the right mark is changed by a \section command.  However,
  1134. % it does produce somewhat anomalous results if two \bothmark's occur on
  1135. % the same page.
  1136. %
  1137. %
  1138. % Commands like \tableofcontents that should set the marks in some
  1139. % page styles use a \@mkboth command, which is \let by the pagestyle
  1140. % command (\ps@...)  to \markboth for setting the heading or
  1141. % \@gobbletwo to do nothing.
  1142.  
  1143. \mark{{}{}}   % Initializes TeX's marks
  1144.  
  1145. % \ps@empty defined in LATEX.TEX
  1146.  
  1147. % Definition of 'headings' page style
  1148. %  Note the use of ##1 for parameter of \def\chaptermark inside the
  1149. %  \def\ps@headings.
  1150. %
  1151. % 91/03/26 FMi: Added extra set of braces arround |\sl| in |\@oddhead|
  1152. % to support NFSS (|\sl| is a shape |\rm| a family). Also remove
  1153. % unnecessary |\hbox{}| commands.
  1154. %
  1155.  
  1156. \if@twoside         % If two-sided printing.
  1157. \def\ps@headings{\let\@mkboth\markboth
  1158.  \def\@oddfoot{}\def\@evenfoot{}%       No feet.
  1159.  \def\@evenhead{\rm \thepage\hfil \sl \leftmark}%        Left heading.
  1160.  \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading.
  1161.  \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne
  1162.       \@chapapp\ \thechapter. \ \fi ##1}}{}}%
  1163.  \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
  1164.    \thesection. \ \fi ##1}}}}
  1165. \else               % If one-sided printing.
  1166. \def\ps@headings{\let\@mkboth\markboth
  1167. \def\@oddfoot{}\def\@evenfoot{}%     No feet.
  1168. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Heading.
  1169. \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne
  1170.   \@chapapp\ \thechapter. \ \fi ##1}}}}
  1171. \fi
  1172.  
  1173. % Definition of 'myheadings' page style.
  1174. %
  1175. \def\ps@myheadings{\let\@mkboth\@gobbletwo
  1176.  \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}%
  1177.  \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}%
  1178.  \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}%
  1179.  \def\subsectionmark##1{}}
  1180.  
  1181. % Definition of 'plain' page style.
  1182. %
  1183. \def\ps@plain{\let\@mkboth\markboth
  1184. \def\@oddfoot{}\def\@evenfoot{}                % no feet
  1185. \def\@oddhead{\hbox{}\hfil\rm\thepage}            % heading (right)
  1186. \def\@evenhead{\rm\thepage\hfil\hbox{}}}        % heading (left)
  1187.  
  1188.  
  1189.  
  1190. %    ****************************************
  1191. %    *            MISCELLANEOUS             *
  1192. %    ****************************************
  1193. %
  1194. % DATE
  1195. %
  1196. \def\today{\ifcase\month\or
  1197.   January\or February\or March\or April\or May\or June\or
  1198.   July\or August\or September\or October\or November\or December\fi
  1199.   \space\number\day, \number\year}
  1200.  
  1201. % EQUATION and EQNARRAY -- put here because it must follow \chapter
  1202. % definition
  1203. %
  1204. % \newcounter{equation}
  1205. %
  1206. \@addtoreset{equation}{chapter}   % Makes \chapter reset 'equation'
  1207.                                   % counter.
  1208.  
  1209. \def\theequation{\thechapter.\arabic{equation}}
  1210.  
  1211. % \jot = 3pt      % Extra space added between lines of an eqnarray
  1212.                   % environment
  1213.  
  1214. % The macro \@eqnnum defines how equation numbers are to appear in
  1215. % equations.
  1216. %
  1217. % \def\@eqnnum{(\theequation)}
  1218. %
  1219.  
  1220.  
  1221. %    ****************************************
  1222. %    *           INITIALIZATION             *
  1223. %    ****************************************
  1224. %
  1225. % Default initializations
  1226.  
  1227. \ps@plain                   % 'plain' page style
  1228. \pagenumbering{arabic}      % Arabic page numbers
  1229. \if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside
  1230.                                  % option.
  1231. \if@twocolumn
  1232.  \@@input twocolum.sty\relax
  1233. \else
  1234.  \onecolumn                 % Single-column.
  1235. \fi
  1236.  
  1237. \endinput
  1238.